<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>php学习笔记[010]</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="show"><span>020  PHP面向对象开发学习（八）</span></div>
<?php include 'include/top.php';?>
<div class="text"><b>多态的介绍和优势</b>
多态性是继抽象和继承后，面向对象语言的第三个特征。从字面上理解，多态的意思是“多种形态”，简单来说，多态是具有表现多种形态的能力的特征，在OO中是指“语言具有根据对象的类型以不同方式处理。<br />
OOP的模式并不仅仅是把很多函数和功能集合起来，目的而是使用类，继承，多态的方式描述我们生活中的一种情况。从而使得我们的代码更具有“物”的意义。帮助我们减少一些重复性的代码和条件语句的判断。<br />

</div>
<div class="text"><b>运算符instanceof</b>
PHP 一个类型运算符。<strong>instanceof</strong>用来测定一个给定的对象是否来自指定的对象类。
使用方式如下所示。
<div class="code">
class A { }<br />
    class B { }</p>
  <p>$thing = new A;</p>
  <p>if ($thing instanceof A) {<br />
    echo 'A';<br />
    }<br />
    if ($thing instanceof B) {<br />
    echo 'B';<br />
    }
</div>
演示结果如下：
<div class="effect">
<?php
class A { }
class B { }

$thing = new A;

if ($thing instanceof A) {
    echo 'A';
}
if ($thing instanceof B) {
    echo 'B';
}
?>
</div>
</div>
<div class="text"><b>多态的简单应用</b>
我们举一个实例来说明多态的应用和优势！。
<div class="code">
&lt;?php<br />
  interface usb<br />
{<br />
function type();<br />
function alert();<br />
}<br />
class zip implements usb<br />
{<br />
function type()<br />
{<br />
echo 'usb2.0接口&lt;br /&gt;';<br />
}<br />
function alert()<br />
{<br />
echo'zip 驱动正在安装。。。&lt;br /&gt;';<br />
}<br />
}<br />
class mp3 implements usb<br />
{<br />
function type()<br />
{<br />
echo 'usb1.0接口&lt;br /&gt;';<br />
}<br />
function alert()<br />
{<br />
echo'MP3 驱动正在安装。。。&lt;br /&gt;';<br />
}<br />
}<br />
class MyPc<br />
{<br />
function usb($what)<br />
{<br />
$what-&gt;type();<br />
$what-&gt;alert();<br />
}<br />
}<br />
$zip= new zip;<br />
$mp3= new mp3;<br />
$pc= new MyPc;<br />
$pc-&gt;usb($zip);<br />
$pc-&gt;usb($mp3);<br />
?&gt;
</div>
运行效果：
<div class="effect">
<?php
interface usb
	{
	function type();
	function alert();
	}
class zip implements usb
	{
	function type()
		{
		echo 'usb2.0接口<br />';
		}
	function alert()
		{
		echo'zip 驱动正在安装。。。<br />';
		}
	}
class mp3 implements usb
	{
	function type()
		{
		echo 'usb1.0接口<br />';
		}
	function alert()
		{
		echo'MP3 驱动正在安装。。。<br />';
		}
	}
class MyPc
	{
	function usb($what)
		{
		$what->type();
		$what->alert();
		}
	}
$zip= new zip;
$mp3= new mp3;
$pc= new MyPc;
$pc->usb($zip);
$pc->usb($mp3);
?>
</div>
</div>
</body>
</html>
